<?php

$traduccion = new Zend_Translate('array', APPLICATION_PATH . '/idiomas/es.php', 'es');  
Zend_Form::setDefaultTranslator($traduccion); 

class Blog_Form_Articulo extends Zend_Form
{

    protected function generaDecorador($id) {
         return array(
                    'Errors',
                    'ViewHelper',
                    'Description',
                    array('Label',array('class' => 'imitar_h2')),
                    array('HtmlTag', array('tag' => 'Fieldset', 'id' => $id, 'class' => 'elemento' ))
                ); 
    }
    
    public function init()
    {
        
        $this->addElement(
            'text', 'nombre', array(
                    'decorators' => $this->generaDecorador("fieldset_nombre"),
                    'label' => 'Nombre Corto:',
                    'description' => 'El "Nombre Corto" se utilizará al pie de la imagen.',
                    'required' => true,
                    array('alpha')
                )
        );
        
        $this->addElement(
            'text', 'titulo', array(
                    'decorators' => $this->generaDecorador("fieldset_titulo"),
                    'label' => 'Título:',
                    'required' => true,
                    array('alpha')
                )
        );
        
        //para sabr que decoradores declarar mire el
        //archivo Zend/Form/Element/File.php línea 77
        $image = new Zend_Form_Element_File('imagen');
        $image->setLabel('Cargar una imagen:')
            ->setDecorators(array(
                    'File',
                    'Errors',
                    array('Description',array('description' => 'Se utilizará al pie de la imagen.')),
                    array('Label',array('class' => 'imitar_h2')),
                    array('HtmlTag', array('tag' => 'Fieldset', 'id' => 'fieldset_imagen', 'class' => 'elemento btn btn-warning form_img_margen' ))
                ));
        $image->addValidator('Count', false, 1);                // ensure only 1 file
        $image->addValidator('IsImage',array('image/bmp', 'image/gif', 'image/jpeg', 'image/png'));

        $this->addElement($image);
        
        $this->addElement(
            'textarea', 'cuerpo', array(
                    'decorators' => $this->generaDecorador("fieldset_cuerpo"),
                    'label' => 'Contenido:',
                    'required' => true,
                    array('alpha')
                )
        );
        
        $this->addElement(
            'submit', 'Crear', array('class' => 'btn btn-large btn-warning')
        );
        
        $this->setAction('/blog/articulos/crear');
        $this->setMethod('post');
                
    }
    
    public function inicializar($articulo){
        $nombre = $this->getElement('nombre');
        $nombre->setValue($articulo->nombre);
        $titulo = $this->getElement('titulo');
        $titulo->setValue($articulo->titulo);
        $imagen = $this->getElement('imagen');
        $imagen->setValue($articulo->imagen);
        $cuerpo = $this->getElement('cuerpo');
        $cuerpo->setValue($articulo->cuerpo);
        return $this;
    }

}

